Introduction to the Appearance Manager
The Appearance Manager
The Appearance Manager provides the underlying support for themes and theme switching. Themes unify the appearance and behavior of human interface objects in your application, including alert icons, controls, background colors, dialog boxes, menus, windows, and state transitions. The only theme supported under Appearance 1.0.2 and earlier versions is the platinum appearance.
- coordinates the look of the Mac OS human interface into a single theme
- introduces new human interface elements to the Mac OS environment
- allows for the adaptation of pre-Appearance Manager human interface elements, both standard and custom, to the new, coordinated look and behaviors
To provide a systemwide coordination of look and behavior, the Appearance Manager includes new standard human interface objects that were developed to replace the many custom solutions that have been implemented. These new elements, such as focus rings and group boxes, obviate the need for developers to create and maintain their own.
- IMPORTANT
- Appearance 1.0 ships with and supports Mac OS 8 only. It should not normally be used with earlier Mac OS versions. Appearance 1.0.2 is an extension that is designed to work with versions of the Mac OS platform from System 7.1 on, so it supersedes Appearance 1.0.
![]()
Another way the Appearance Manager achieves a unified look and behavior is by mapping standard pre-Appearance definition functions (the
'MBDF'0
,'MDEF'0
,'WDEF'0
,'WDEF'124
,'CDEF'0
,'CDEF'1
, and'CDEF'63
resources) to their Appearance-compliant equivalents. This occurs either on a systemwide basis (if the user hasn't turned off systemwide appearance) or on a per-application basis, if you callRegisterAppearanceClient
from within your application. Figure 1-1 shows the ways by which it is determined how, and whether, mapping will occur for standard definition functions.Figure 1-1 Mapping of standard definition functions
Some mapped definition functions will have a slightly different look and behavior than if they were specified directly. For example, since a standard pre-Appearance window definition function can't specify the inclusion of a horizontal zoom box, when the old resource is mapped to a new one, the resulting window still won't have a horizontal zoom box. For this reason (and to eliminate the time spent going through the mapping layer), it's recommended that you specify the Appearance-compliant definition function IDs directly.
Custom definition functions cannot be automatically mapped to Appearance-compliant equivalents. However, the Appearance Manager does provide ways to coordinate custom elements with themes. For example, using
DrawThemeListBoxFrame
creates a theme-compliant frame for a custom list box.